/**    
 * 文件名：AccessTokenComponent.java</br>
 *    
 * 版本信息：v1.0</br>
 * 日期：2017年6月28日</br>
 * © 2005-2017 雷技信息科技（上海）有限公司版权所有</br>
 *
 */
package com.logic.landseaserver.common.token;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.logic.landseaserver.domain.SystemAccessToken;
import com.logic.landseaserver.persistence.write.SystemAccessTokenWriteMapper;

/**
 *
 * 项目名称：system-server</br>
 * 类名称：AccessTokenComponent</br>
 * 类描述：accessToken操作数组件</br>
 * 创建人：Aaron</br>
 * 创建时间：2017年6月28日 下午4:45:43</br>
 * @version 1.0
 *
 */
@Component
public class AccessTokenComponent
{
    @Autowired
    private SystemAccessTokenWriteMapper writeMapper;
    
    public List<SystemAccessToken> queryAllAccessToken()
    {
        List<SystemAccessToken> list = new ArrayList<SystemAccessToken>();
        
        return list;
    }
    
    /**
     * 
     * [简要描述]：更新accessToken</br>
     * [详细描述]：更新过期时间</br>
     * [作者]：Aaron(2017-06-28)</br>
     *
     * @param record accessToken对象
     *
     */
    public void update(SystemAccessToken record)
    {
        writeMapper.updateByPrimaryKey(record);
    }
    
    /**
     * 
     * [简要描述]：新增一条记录</br>
     * [详细描述]：</br>
     * [作者]：Aaron(2017-06-28)</br>
     *
     * @param record accesToken
     *
     */
    public void insert(SystemAccessToken record)
    {
        writeMapper.insert(record);
    }
    
    /**
     * 
     * [简要描述]：根据主键查询数据</br>
     * [详细描述]：</br>
     * [作者]：Aaron(2017-06-28)</br>
     *
     * @param tokenId 主键
     * @return SystemAccessToken
     *
     */
    public SystemAccessToken queryByTokenId(String tokenId)
    {
        return writeMapper.selectByPrimaryKey(tokenId);
    }
    
    @PostConstruct
    private void init()
    {
        // 先查询所有的配置项，初始化
        List<SystemAccessToken> allAccessTokenList = queryAllAccessToken();
        AccessTokenHelper.getInstance().init(allAccessTokenList, this);
    }
}
